﻿using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Domain;
using DAO;
using Microsoft.Practices.EnterpriseLibrary.Validation;
using System.Collections.Generic;

public partial class UsrRegistracion : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btn_registrar_Click(object sender, EventArgs e)
    {
        ul_mensajes.InnerHtml = string.Empty;

        long dni = 0;
        if (!long.TryParse(txt_dni.Text, out dni))
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "El DNI debe ser numérico y mayor a 7 dígitos" + "</li>";
            return;
        }

        Usuario usuario = new Usuario(dni, 
                                      txt_pass.Text,
                                      txt_mail.Text, 
                                      string.Empty,
                                      string.Empty,
                                      null,
                                      new List<Asociacion>(),
                                      new List<Consumo>());
        ValidationResults validaciones = Validation.Validate(usuario);
        if (validaciones.Count() != 0)
        {
            foreach (ValidationResult v in validaciones)
            {
                ul_mensajes.InnerHtml += "<li class='itemerror'>" + v.Message + "</li>";
            }

            return;
        }

        if (UsuarioDAO.Traer(usuario.UserName) != null)
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "El usuario ya existe" + "</li>";
            return;
        }

        if(!UsuarioDAO.Guardar(usuario))
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "Ocurrio un inconveniente. Intente nuevamente mas tarde" + "</li>";
            return;
        }

        Utils.operadorLogueado = UsuarioDAO.Traer(usuario.UserName);
        Response.Redirect(Utils.SecureRedirect("~/UsrAdminPanel.aspx"));
    }
}
